#include <cstdlib>
#include <iostream>
#include <SDL/SDL.h>
#include <SDL/SDL_mixer.h>
#include "ssonido.h"
                /**********************************************/
                /*                 NOTA                       */
                /**********************************************/
                //     personaje.sonido1 -> grito de guerra   //
                //     personaje.sonido2 -> ataque            //
                //     personaje.sonido3 -> movimiento        //
                /**********************************************/

using namespace std;

c_ssonido::c_ssonido()
{

 if(SDL_Init(SDL_INIT_AUDIO) < 0)
 {
  std::cout << "SDL_Init error: " << SDL_GetError() << std::endl;
  exit(EXIT_FAILURE);
 }
 
        if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 4096) == -1)
        {
                std::cout << "Error en Mix_OpenAudio: "<< Mix_GetError() << std::endl;
                exit(EXIT_FAILURE);
                }
        
batalla=false;
}


void c_ssonido::musica_principal(int c){        
        Mix_Music *cancion;
        
	if(c==0)
        cancion = Mix_LoadMUS("./musica/cancion.mp3");
	else{
	cancion = Mix_LoadMUS("./musica/cancion2.mp3");
	batalla=true;
	}
	
        if (!cancion)
                printf("Error en Mix_LoadMUS: %s\n", Mix_GetError());

        if (cancion)
        {
                if (Mix_PlayMusic(cancion, -1) == -1)
                        printf("Error en Mix_PlayMusic: %s\n", Mix_GetError());
        }       
} 


void c_ssonido::ciclo(){
     
     if(!Mix_PlayingMusic() && !batalla){
                             musica_principal(0);
                             }
                             }
                             

void c_ssonido::sonido_ataque(personaje p){
     Mix_Chunk *sonido;
     
     const char *cad1 = p.sonido3.c_str();
     sonido=Mix_LoadWAV(cad1);
  
	Mix_PlayChannel(1,sonido,0);

     
//     Mix_FreeChunk(sonido);
}    

void c_ssonido::sonido_atacando(personaje p){
     Mix_Chunk *sonido;
     
     const char *cad1 = p.sonido2.c_str();
     sonido=Mix_LoadWAV(cad1);
     Mix_PlayChannel(1,sonido,0);
     
//     Mix_FreeChunk(sonido);
}    

void c_ssonido::sonido_mov(personaje p){
     Mix_Chunk *sonido;
     
     const char *cad1 = p.sonido1.c_str();
     sonido=Mix_LoadWAV(cad1);
   
	Mix_PlayChannel(-1,sonido,0);
	
     
//     Mix_FreeChunk(sonido);
}        


void c_ssonido::click(){
    Mix_Chunk *sonido;
     
	if(sonido == NULL)
     sonido=Mix_LoadWAV("./sonidos/s32.wav");

//	else
//	Mix_PlayChannel(-1,sonido,0);

}


void c_ssonido::sonido_ataque_r(){
	Mix_Chunk *sonido;
     
	
     sonido=Mix_LoadWAV("./sonidos/s32.wav");
	
	Mix_PlayChannel(-1,sonido,0);

}


void c_ssonido::fin(int f){
        Mix_Music *cancion;
        batalla=false;
	if(f==0)
        cancion = Mix_LoadMUS("./musica/perdedor.mp3");
	else{
	cancion = Mix_LoadMUS("./musica/ganador.mp3");
	
	}
	
        if (!cancion)
                printf("Error en Mix_LoadMUS: %s\n", Mix_GetError());

        if (cancion)
        {
                if (Mix_PlayMusic(cancion, 0) == -1)
                        printf("Error en Mix_PlayMusic: %s\n", Mix_GetError());
        }    
}


void c_ssonido::pausa(){

	Mix_FadeOutMusic(10);

}

void c_ssonido::continuar(){

	Mix_ResumeMusic();
}	

